Wireless access in vehicular environments (WAVE) provides high-speed vehicle-to-vehicle, and vehicle-to-infrastructure data transmission. The physical (PHY) layer of a WAVE network is based on the IEEE 802.11p standard. Currently, a WAVE transceiver has one antenna, and uses convolutional forward error correction (FEC) coding.
To achieve spatial diversity and/or multiplexing gains, multiple-input-multiple-output (MIMO) techniques can be used, e.g., WiMAX. It is expected that MIMO will be considered for WAVE standards.
MIMO techniques include open-loop and closed-loop spatial multiplexing, closed-loop MIMO beamforming, and open-loop space-time coding (STC). In a dynamic WAVE networks, the estimated instantaneous channel state information (CSI) can quickly change because of the velocity of the vehicles. In addition, feeding back time-varying instantaneous CSI increases overhead. Thus, closed-loop MIMO techniques are not suitable for WAVE networks.
For open-loop MIMO techniques, STC includes space-time block codes (STBC), and space-time trellis codes (STTC). For STBC schemes, orthogonal STBC (OSTBC) is usually adopted by commercial wireless standards. If the channel is invariant within an OSTBC block, then a simple symbol-level maximum likelihood (ML) detection of OSTBC can achieve full spatial diversity.
In WiMAX, OSTBC is used as an inner code serially concatenated with a conventional convolutional code. Frequency offset resulting from imperfect frequency compensation can lead to symbol-level time-varying fading within an OSTBC block. In this case, to avoid performance degradation, block-level ML detection is needed to decode OSTBC so as to avoid performance degradation.
For complex modulation constellation, full-rate OSTBC only exists for multiple transmit antennas. STTC on the other hand, is a full-rate trellis coded modulation technique specifically designed only for multi-antenna transmission. The coding and decoding complexity is similar to traditional single-antenna trellis codes (e.g., convolutional codes) that have the same number of trellis states as STTC
STTC has different design criteria for different channel conditions, such as “quasi-static vs. rapid” multipath fading based on the coherence time, and “flat vs. frequency-selective” multipath fading, based on the coherence bandwidth.
An STTC designed for a quasi-static flat fading channel can achieve at least the same end-to-end diversity benefit for other channel conditions, without modifications of the detection algorithm. Thus, unlike OSTBC, there exist STTC schemes which are robust to unpredictable/rapid variation of channel conditions. While most STBC schemes, e.g., OSTBC, do not provide coding gain, STTC does provide coding gain.
Conventional wireless standards, which consider single- and multi-antenna configurations, when evolving from the single-antenna configuration to the multi-antenna configuration, change the coding and/or decoding modules at the transceivers. This is because the structure and process of STC encoders and decoders have obvious differences from those of conventional single-antenna FEC techniques, e.g., convolutional codes, and turbo codes.
Because STTC is inherently a trellis coded modulation technique, using different modulation constellations requires that STTC encoders structures have different structures.
Convolutional Code in IEEE 802.11p Standard
As shown in FIG. 1, a conventional 64-state convolutional encoder 100 according to the IEEE 802.11p standard uses a generator polynomials, g0=133oct and g1=171oct, with a code rate Rc=½. In the encoder, each shift register 105 is a 1-bit (binary) register. The constraint length 102 of this code is seven. That is, the memory order is six and the number of trellis states is 26=64. The input bits 101 are encoded into coded bits. Then, the modulator 110 takes coded bits and converts them into transmitted symbols. The Viterbi decoding is recommended for performing ML coherent detection.
Higher code rates (e.g., ⅔, ¾) can be achieved by puncturing. Puncturing is a procedure for omitting some of the encoded bits in the transmitter and inserting a dummy “zero” in the convolutional decoder in place of the omitted bits. The puncturing patterns are prescribed in the IEEE 802.11p standard. When puncturing is used, in order to reuse the original decoding trellis, the calculation of the branch metrics need to be modified appropriately.
STTC Designed for Multiple Transmit Antennas
The STTC designed for n (n≧2) transmit antennas is denoted as n-Tx STTC, at each time slot t, an n-Tx STTC encodes k=log2 M bits into n coded MPSK/MQAM symbols ct=(ct1, ct2, . . . , ctn). Antenna i transmits symbol cti, and n coded symbols are transmitted simultaneously by n transmit antennas, resulting in full-rate transmission. The energy per information bit is Eb. Because n coded MPSK/MQAM symbols are generated from k=log2 M information bits, the energy for each of the n coded symbols is Ec=kEb/n.
ML coherent detection for STTC typically uses Viterbi decoding. Compared with the Viterbi decoding for one receive antenna, when there are m (m≧2) receive antennas, the branch metric is the sum of m values, each of which is obtained by using the received signal at one of m receive antennas to do the same calculation of branch metric as for one receive antenna.
For STTC using PSK modulation, using the code with 64 trellis states as the example, the encoder structure for n-Tx BPSK STTC and n-Tx QPSK STTC are shown in FIGS. 2-3, respectively. In both figures, each shift register is a 1-bit (binary) register. For BPSK, the values of code generator weight gw,i1 (w=0, 1, . . . , 6; i=1, . . . , n) belong to {0, 1}, and the multiplier outputs are added modulo 2. For QPSK, there are two parallel encoder branches. The values of gw,iu (u=1, 2; w=0, 1, . . . , 3; i=1, . . . , n) belong to {0, 1, 2, 3}, and the multiplier outputs are added modulo 4.
For STTC using QAM modulation, a generic design for n-Tx 22p-QAM STTC (p is a positive integer) is known. A 16QAM STTC encoder is described by Liu et al., “A rank criterion for QAM space-time codes,” IEEE Trans. on Inform. Theory, vol. 48, no. 12, pp. 3062-3079, December 2002.
A 16-QAM decoder is described by Wong et al., “Design of 16-QAM space-time trellis codes for quasi-static fading channels,” Proc. of VTC 2004-Spring, pp. 880-883, Can 2004.
An n-Tx BPSK/QPSK encoder is described by Vucetic et al., “Space-Time Coding,” West Sussex, England: John Wiley Sons, 2003.
In some designs, at each time slot t, the input mapper converts k=2p serial information bits into two parallel symbol streams st1, st2∈Z2p={0, 1, . . . , 2p−1}, so that there are always two parallel encoder branches. Based on the symbols, the generator coefficients, and the state values, the encoder produce the outputs as yt,I1, yt,Q1, . . . , yt,Ii, yt,Qi, . . . , yt,In, yt,Qn. The output mapper takes the encoder outputs and converts them into ct=(ct1, ct2, . . . , ctn), where cti=yt,Ii+j yt,Qi for i=1, . . . , n. After a translational mapping of cti (i=1, . . . , n) to elements in the 22p-QAM constellation, each of n coded 22p-QAM symbols is sent by one of n transmit antennas. Using a code with 64 trellis states as an example, the encoder structures for n-Tx 16QAM STTC and n-Tx 64QAM STTC are shown in FIGS. 4-5.
For the 16QAM case, each shift register is a 2-bit (quaternary) register. The values of code generator parameters gw,i,I1, gw,i,Q1 (w=0, 1; i=1, . . . , n), gw,i,I2, gw,i,Q2 (w=0, 1, 2; i=1, . . . , n) belong to Z4={0, 1, 2, 3}, and the multiplier outputs are added modulo 4. For the 64QAM case, each shift register is a 3-bit (octal) register, the values of gw,i,Iu, gw,i,Qu (u=1, 2; w=0, 1; i=1, . . . , n) belong to Z8={0, 1, . . . , 7}, and the multiplier outputs are added modulo 8.
There exist STTC schemes which are robust to unpredictable variation of channel conditions, V. Tarokh et al., “Space-time codes for high data rate wireless communication: performance criteria in the presence of channel estimation errors, mobility, and multiple paths,” IEEE Trans. on Commun., vol. 47, no. 2, pp. 199-207, February 1999.
As shown in FIG. 3, the general encoder structure for n-Tx QPSK STTC only has two parallel encoder branches. If the encoder structure for n-Tx 16QAM STTC is selected for an n-antenna transmitter using n-Tx QPSK/16QAM STTC, when switching the modulation constellation between n-Tx QPSK STTC and n-Tx 16QAM STTC, the hardware implementation requires extensive variations.
In addition, using n=2 as the example, it has been shown in the work by Wong et al., that the error performance of 16QAM STTC in the work by V. Tarokh et al., is worse.